home *** CD-ROM | disk | FTP | other *** search
/ Amiga Game-Power / Amiga Game-Power.iso / anwendungen / gw print / structurebrowser_v1.3 / sources / sbtext.c < prev    next >
C/C++ Source or Header  |  1994-05-20  |  3KB  |  124 lines

  1. /*
  2.    Handles TextFont and TextAttr structures
  3.  
  4.    Not implemented:
  5.       TextFont.tf_Message
  6.       TextFont.tf_CharData
  7.       TextFont.tf_CharLoc
  8.       TextFont.tf_CharSpace
  9.       TextFont.tf_CharKern
  10. */
  11.  
  12. #include "header/sb.h"
  13.  
  14. extern int level;         /* recursion level */
  15.  
  16.  
  17. static char *stylenames[8] = {
  18.    "FSF_UNDERLINED", "FSF_BOLD",       "FSF_ITALIC",     "FSF_EXTENDED"
  19. };
  20.  
  21. static char *flags[8] = {
  22.    "FPF_ROMFONT",    "FPF_DISKFONT",      "FPF_REVPATH",    "FPF_TALLDOT",
  23.    "FPF_WIDEDOT",    "FPF_PROPORTIONAL",  "FPF_DESIGNED",   "FPF_REMOVED"
  24. };
  25.  
  26.  
  27. /* PrTextAttr
  28.  
  29.    Print data for a TextAttr structure
  30. */
  31.  
  32. PrTextAttr (string, textattr)
  33. char *string;
  34. struct TextAttr *textattr;
  35. {
  36. static struct StructData structdata[] = {
  37.    { " ta_Name",        "STRPTR",   PRSTRING, PTRSIZE      },
  38.    { "-ta_YSize",       "UWORD",    PRUINT,   INTSIZE      },
  39.    { " ta_Style",       "UBYTE",    PRBYTE,   BYTESIZE     },
  40.    { " ta_Flags",       "UBYTE",    PRBYTE,   BYTESIZE     }
  41. };
  42.  
  43. int i, sum;
  44. int choice = -1;
  45.  
  46.    level++;
  47.  
  48.    while (choice)
  49.    {
  50.       sum = SetOptionText(string, structdata, (APTR)textattr, DATASIZE, 0);
  51.  
  52.       switch (choice = GetChoice(DATASIZE))
  53.       {
  54.          case 1:
  55.             if (textattr->ta_Name)
  56.                PrString("The name of the Font", textattr->ta_Name);
  57.             break;
  58.          case 3:
  59.             FlagPrint("The style bits set for this Font",
  60.                   stylenames, (ULONG)textattr->ta_Style);
  61.             break;
  62.          case 4:
  63.             FlagPrint("The flag bits set for this Font",
  64.                   flags, (ULONG)textattr->ta_Flags);
  65.             break;
  66.       }
  67.    }
  68.    level--;
  69. }
  70.  
  71.  
  72.  
  73. /* PrTextFont
  74.  
  75.    Print data for a TextFont structure
  76. */
  77.  
  78. PrTextFont (string, textfont)
  79. char *string;
  80. struct TextFont *textfont;
  81. {
  82. static struct StructData structdata[] = {
  83.    { "(tf_Message",     "struct Message)",   PRNULL,   SZ(Message)  },
  84.    { "-tf_YSize",       "UWORD",             PRUINT,   INTSIZE      },
  85.    { " tf_Style",       "UBYTE",             PRBYTE,   BYTESIZE     },
  86.    { " tf_Flags",       "UBYTE",             PRBYTE,   BYTESIZE     },
  87.    { "-tf_XSize",       "UWORD",             PRUINT,   INTSIZE      },
  88.    { "-tf_BaseLine",    "UWORD",             PRUINT,   INTSIZE      },
  89.    { "-tf_BoldSmear",   "UWORD",             PRUINT,   INTSIZE      },
  90.    { "-tf_Accessors",   "UWORD",             PRUINT,   INTSIZE      },
  91.    { "-tf_LoChar",      "UBYTE",             PRBYTE,   BYTESIZE     },
  92.    { "-tf_HiChar",      "UBYTE",             PRBYTE,   BYTESIZE     },
  93.    { "(tf_CharData",    "APTR)",             PRPTR,    PTRSIZE      },
  94.    { "-tf_Modulo",      "UWORD",             PRUINT,   INTSIZE      },
  95.    { "(tf_CharLoc",     "APTR)",             PRPTR,    PTRSIZE      },
  96.    { "(tf_CharSpace",   "APTR)",             PRPTR,    PTRSIZE      },
  97.    { "(tf_CharKern",    "APTR)",             PRPTR,    PTRSIZE      }
  98. };
  99.  
  100.  
  101. int i, sum;
  102. int choice = -1;
  103.  
  104.    level++;
  105.  
  106.    while (choice)
  107.    {
  108.       sum = SetOptionText(string, structdata, (APTR)textfont, DATASIZE, 0);
  109.  
  110.       switch (choice = GetChoice(DATASIZE))
  111.       {
  112.          case 3:
  113.             FlagPrint("The style bits set for this Font",
  114.                   stylenames, (ULONG)textfont->tf_Style);
  115.             break;
  116.          case 4:
  117.             FlagPrint("The flag bits set for this Font",
  118.                   flags, (ULONG)textfont->tf_Flags);
  119.             break;
  120.       }
  121.    }
  122.    level--;
  123. }
  124.